package com.zretc.kscxmz.mappers;

import com.zretc.kscxmz.entity.Mail;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @author zengyanjun
 * @date 2020-07-22
 *  邮箱接口
 *
 */
@Repository
public interface MailMapper {
    /**
     * 查询指定用户的发件箱
     */
    List<Mail> findSendMails(Integer userId);
    /**
     * 查询指定用户的收件箱
     */
    List<Mail> findReceiveMails(Integer userId);
    /**
     * 查询指定用户的草稿箱
     */
    List<Mail> findDraftMails(Integer userId);
    /**
     * 查询指定用户的收件垃圾箱
     */
    //List<Mail> findRRubbishMails(Integer userId);
    /**
     * 查询指定用户的发件、草稿垃圾箱
     */
    //List<Mail> findSRubbishMails(Integer userId);
    /**
     * 根据条件模糊查询 收件
     */
    List<Mail> findReceiveMailsByCondition(Map<String,String> map);
    /**
     * 根据条件模糊查询 发件和草稿
     */
    List<Mail> findSendAndDraftMailsByCondition(Map<String,String> map);

    /**
     * 修改收件箱里面邮件的状态
     * @param userId
     * @param mailIdList
     * @return
     */
    int updateReceiveStatus(@Param("userId") Integer userId,@Param("mailIdList") List<String> mailIdList);

    /**
     * 修改发件箱和草稿箱的邮件状态
     * @param userId
     * @param mailIdList
     * @return
     */
    int updateSendAndDraftStatus(@Param("userId") Integer userId,@Param("mailIdList") List<String> mailIdList);

    /**
     * 查看指定邮件id的完整信息
     * @param mailId
     * @return
     */
    Mail findMailByMailId(Integer mailId);

    /**
     * 保存草稿箱的数据
     * @param mail
     * @return
     */
    int insertDraftMail(Mail mail);

    /**
     * 修改已保存的草稿邮件的信息
     * @param mail
     * @return
     */
    int updateDraftMail(Mail mail);

    /**
     * 查找邮件表的最后一个id
     * @return
     */
    int findLastMailId();

    /**
     * 添加已发送的邮件信息
     * @param mail
     * @return
     */
    int insertSendMail(Mail mail);
    /**
     * 修改邮件的状态以及信息
     * @param mail
     * @return
     */
    int updateMailStatus(Mail mail);

}
